﻿using System;

namespace HalconDotNet
{
	// Token: 0x0200008E RID: 142
	public class HTupleElements
	{
		// Token: 0x06001E34 RID: 7732 RVA: 0x000B5B33 File Offset: 0x000B3D33
		internal HTupleElements()
		{
			this.parent = null;
			this.elements = new HTupleElementsImplementation();
		}

		// Token: 0x06001E35 RID: 7733 RVA: 0x000B5B4D File Offset: 0x000B3D4D
		internal HTupleElements(HTuple parent, HTupleInt32 source, int index)
		{
			this.parent = parent;
			this.elements = new HTupleElementsInt32(source, index);
		}

		// Token: 0x06001E36 RID: 7734 RVA: 0x000B5B69 File Offset: 0x000B3D69
		internal HTupleElements(HTuple parent, HTupleInt32 source, int[] indices)
		{
			this.parent = parent;
			this.elements = new HTupleElementsInt32(source, indices);
		}

		// Token: 0x06001E37 RID: 7735 RVA: 0x000B5B85 File Offset: 0x000B3D85
		internal HTupleElements(HTuple parent, HTupleInt64 tupleImp, int index)
		{
			this.parent = parent;
			this.elements = new HTupleElementsInt64(tupleImp, index);
		}

		// Token: 0x06001E38 RID: 7736 RVA: 0x000B5BA1 File Offset: 0x000B3DA1
		internal HTupleElements(HTuple parent, HTupleInt64 tupleImp, int[] indices)
		{
			this.parent = parent;
			this.elements = new HTupleElementsInt64(tupleImp, indices);
		}

		// Token: 0x06001E39 RID: 7737 RVA: 0x000B5BBD File Offset: 0x000B3DBD
		internal HTupleElements(HTuple parent, HTupleDouble tupleImp, int index)
		{
			this.parent = parent;
			this.elements = new HTupleElementsDouble(tupleImp, index);
		}

		// Token: 0x06001E3A RID: 7738 RVA: 0x000B5BD9 File Offset: 0x000B3DD9
		internal HTupleElements(HTuple parent, HTupleDouble tupleImp, int[] indices)
		{
			this.parent = parent;
			this.elements = new HTupleElementsDouble(tupleImp, indices);
		}

		// Token: 0x06001E3B RID: 7739 RVA: 0x000B5BF5 File Offset: 0x000B3DF5
		internal HTupleElements(HTuple parent, HTupleString tupleImp, int index)
		{
			this.parent = parent;
			this.elements = new HTupleElementsString(tupleImp, index);
		}

		// Token: 0x06001E3C RID: 7740 RVA: 0x000B5C11 File Offset: 0x000B3E11
		internal HTupleElements(HTuple parent, HTupleString tupleImp, int[] indices)
		{
			this.parent = parent;
			this.elements = new HTupleElementsString(tupleImp, indices);
		}

		// Token: 0x06001E3D RID: 7741 RVA: 0x000B5C2D File Offset: 0x000B3E2D
		internal HTupleElements(HTuple parent, HTupleHandle tupleImp, int index)
		{
			this.parent = parent;
			this.elements = new HTupleElementsHandle(tupleImp, index);
		}

		// Token: 0x06001E3E RID: 7742 RVA: 0x000B5C49 File Offset: 0x000B3E49
		internal HTupleElements(HTuple parent, HTupleHandle tupleImp, int[] indices)
		{
			this.parent = parent;
			this.elements = new HTupleElementsHandle(tupleImp, indices);
		}

		// Token: 0x06001E3F RID: 7743 RVA: 0x000B5C65 File Offset: 0x000B3E65
		internal HTupleElements(HTuple parent, HTupleMixed tupleImp, int index)
		{
			this.parent = parent;
			this.elements = new HTupleElementsMixed(tupleImp, index);
		}

		// Token: 0x06001E40 RID: 7744 RVA: 0x000B5C81 File Offset: 0x000B3E81
		internal HTupleElements(HTuple parent, HTupleMixed tupleImp, int[] indices)
		{
			this.parent = parent;
			this.elements = new HTupleElementsMixed(tupleImp, indices);
		}

		/// <summary>
		///   Get the value of this element as a 32-bit integer.
		///   The element must represent integer data (32-bit or 64-bit).
		/// </summary>
		// Token: 0x17000070 RID: 112
		// (get) Token: 0x06001E41 RID: 7745 RVA: 0x000B5C9D File Offset: 0x000B3E9D
		// (set) Token: 0x06001E42 RID: 7746 RVA: 0x000B5CAC File Offset: 0x000B3EAC
		public int I
		{
			get
			{
				return this.elements.I[0];
			}
			set
			{
				int[] i = new int[]
				{
					value
				};
				try
				{
					this.elements.I = i;
				}
				catch (HTupleAccessException)
				{
					this.ConvertToMixed();
					this.elements.I = i;
				}
			}
		}

		/// <summary>
		///   Get the value of these elements as a 32-bit integer.
		///   The elements must represent integer data (32-bit or 64-bit).
		/// </summary>
		// Token: 0x17000071 RID: 113
		// (get) Token: 0x06001E43 RID: 7747 RVA: 0x000B5CF8 File Offset: 0x000B3EF8
		// (set) Token: 0x06001E44 RID: 7748 RVA: 0x000B5D08 File Offset: 0x000B3F08
		public int[] IArr
		{
			get
			{
				return this.elements.I;
			}
			set
			{
				try
				{
					this.elements.I = value;
				}
				catch (HTupleAccessException)
				{
					this.ConvertToMixed();
					this.elements.I = value;
				}
			}
		}

		/// <summary>
		///   Get the value of this element as a 64-bit integer.
		///   The elements must represent integer data (32-bit or 64-bit).
		/// </summary>
		// Token: 0x17000072 RID: 114
		// (get) Token: 0x06001E45 RID: 7749 RVA: 0x000B5D48 File Offset: 0x000B3F48
		// (set) Token: 0x06001E46 RID: 7750 RVA: 0x000B5D58 File Offset: 0x000B3F58
		public long L
		{
			get
			{
				return this.elements.L[0];
			}
			set
			{
				long[] l = new long[]
				{
					value
				};
				try
				{
					this.elements.L = l;
				}
				catch (HTupleAccessException)
				{
					this.ConvertToMixed();
					this.elements.L = l;
				}
			}
		}

		/// <summary>
		///   Get the value of these elements as a 64-bit integer.
		///   The elements must represent integer data (32-bit or 64-bit).
		/// </summary>
		// Token: 0x17000073 RID: 115
		// (get) Token: 0x06001E47 RID: 7751 RVA: 0x000B5DA4 File Offset: 0x000B3FA4
		// (set) Token: 0x06001E48 RID: 7752 RVA: 0x000B5DB4 File Offset: 0x000B3FB4
		public long[] LArr
		{
			get
			{
				return this.elements.L;
			}
			set
			{
				try
				{
					this.elements.L = value;
				}
				catch (HTupleAccessException)
				{
					this.ConvertToMixed();
					this.elements.L = value;
				}
			}
		}

		/// <summary>
		///   Get the value of this element as a double.
		///   The element must represent numeric data.
		/// </summary>
		// Token: 0x17000074 RID: 116
		// (get) Token: 0x06001E49 RID: 7753 RVA: 0x000B5DF4 File Offset: 0x000B3FF4
		// (set) Token: 0x06001E4A RID: 7754 RVA: 0x000B5E04 File Offset: 0x000B4004
		public double D
		{
			get
			{
				return this.elements.D[0];
			}
			set
			{
				double[] d = new double[]
				{
					value
				};
				try
				{
					this.elements.D = d;
				}
				catch (HTupleAccessException)
				{
					this.ConvertToMixed();
					this.elements.D = d;
				}
			}
		}

		/// <summary>
		///   Get the value of these elements as doubles.
		///   The elements must represent numeric data.
		/// </summary>
		// Token: 0x17000075 RID: 117
		// (get) Token: 0x06001E4B RID: 7755 RVA: 0x000B5E50 File Offset: 0x000B4050
		// (set) Token: 0x06001E4C RID: 7756 RVA: 0x000B5E60 File Offset: 0x000B4060
		public double[] DArr
		{
			get
			{
				return this.elements.D;
			}
			set
			{
				try
				{
					this.elements.D = value;
				}
				catch (HTupleAccessException)
				{
					this.ConvertToMixed();
					this.elements.D = value;
				}
			}
		}

		/// <summary>
		///   Get the value of this element as a string.
		///   The element must represent a string value.
		/// </summary>
		// Token: 0x17000076 RID: 118
		// (get) Token: 0x06001E4D RID: 7757 RVA: 0x000B5EA0 File Offset: 0x000B40A0
		// (set) Token: 0x06001E4E RID: 7758 RVA: 0x000B5EB0 File Offset: 0x000B40B0
		public string S
		{
			get
			{
				return this.elements.S[0];
			}
			set
			{
				string[] s = new string[]
				{
					value
				};
				try
				{
					this.elements.S = s;
				}
				catch (HTupleAccessException)
				{
					this.ConvertToMixed();
					this.elements.S = s;
				}
			}
		}

		/// <summary>
		///   Get the value of these elements as strings.
		///   The elements must represent string values.
		/// </summary>
		// Token: 0x17000077 RID: 119
		// (get) Token: 0x06001E4F RID: 7759 RVA: 0x000B5EFC File Offset: 0x000B40FC
		// (set) Token: 0x06001E50 RID: 7760 RVA: 0x000B5F0C File Offset: 0x000B410C
		public string[] SArr
		{
			get
			{
				return this.elements.S;
			}
			set
			{
				try
				{
					this.elements.S = value;
				}
				catch (HTupleAccessException)
				{
					this.ConvertToMixed();
					this.elements.S = value;
				}
			}
		}

		/// <summary>
		///   Get the value of this element as a handle.
		///   The element must represent a handle value.
		/// </summary>
		// Token: 0x17000078 RID: 120
		// (get) Token: 0x06001E51 RID: 7761 RVA: 0x000B5F4C File Offset: 0x000B414C
		// (set) Token: 0x06001E52 RID: 7762 RVA: 0x000B5F5C File Offset: 0x000B415C
		public HHandle H
		{
			get
			{
				return this.elements.H[0];
			}
			set
			{
				HHandle[] h = new HHandle[]
				{
					value
				};
				try
				{
					this.elements.H = h;
				}
				catch (HTupleAccessException)
				{
					this.ConvertToMixed();
					this.elements.H = h;
				}
			}
		}

		/// <summary>
		///   Get the value of these elements as strings.
		///   The elements must represent string values.
		/// </summary>
		// Token: 0x17000079 RID: 121
		// (get) Token: 0x06001E53 RID: 7763 RVA: 0x000B5FA8 File Offset: 0x000B41A8
		// (set) Token: 0x06001E54 RID: 7764 RVA: 0x000B5FB8 File Offset: 0x000B41B8
		public HHandle[] HArr
		{
			get
			{
				return this.elements.H;
			}
			set
			{
				try
				{
					this.elements.H = value;
				}
				catch (HTupleAccessException)
				{
					this.ConvertToMixed();
					this.elements.H = value;
				}
			}
		}

		/// <summary>
		///   Get the value of this element as an object.
		///   The element may be of any type. Numeric data will be boxed.
		/// </summary>
		// Token: 0x1700007A RID: 122
		// (get) Token: 0x06001E55 RID: 7765 RVA: 0x000B5FF8 File Offset: 0x000B41F8
		// (set) Token: 0x06001E56 RID: 7766 RVA: 0x000B6008 File Offset: 0x000B4208
		public object O
		{
			get
			{
				return this.elements.O[0];
			}
			set
			{
				if (this.elements is HTupleElementsMixed)
				{
					this.elements.O[0] = value;
					return;
				}
				int objectType = HTupleImplementation.GetObjectType(value);
				if (objectType <= 16)
				{
					switch (objectType)
					{
					case 1:
						this.I = (int)value;
						return;
					case 2:
						this.D = (double)value;
						return;
					case 3:
						break;
					case 4:
						this.S = (string)value;
						return;
					default:
						if (objectType == 16)
						{
							this.H = (HHandle)value;
							return;
						}
						break;
					}
				}
				else
				{
					if (objectType == 129)
					{
						this.L = (long)value;
						return;
					}
					if (objectType == 32898)
					{
						this.F = (float)value;
						return;
					}
					if (objectType == 32900)
					{
						this.IP = (IntPtr)value;
						return;
					}
				}
				throw new HTupleAccessException("Attempting to assign object containing invalid type");
			}
		}

		/// <summary>
		///   Get the value of these elements as objects.
		///   The elements may be of any type. Numeric data will be boxed.
		/// </summary>
		// Token: 0x1700007B RID: 123
		// (get) Token: 0x06001E57 RID: 7767 RVA: 0x000B60DB File Offset: 0x000B42DB
		// (set) Token: 0x06001E58 RID: 7768 RVA: 0x000B60E8 File Offset: 0x000B42E8
		public object[] OArr
		{
			get
			{
				return this.elements.O;
			}
			set
			{
				if (this.elements is HTupleElementsMixed)
				{
					this.elements.O = value;
					return;
				}
				int objectsType = HTupleImplementation.GetObjectsType(value);
				if (objectsType <= 16)
				{
					switch (objectsType)
					{
					case 1:
						this.IArr = Array.ConvertAll<object, int>(value, new Converter<object, int>(HTupleElements.ObjectToInt));
						return;
					case 2:
						this.DArr = Array.ConvertAll<object, double>(value, new Converter<object, double>(HTupleElements.ObjectToDouble));
						return;
					case 3:
						break;
					case 4:
						this.SArr = Array.ConvertAll<object, string>(value, new Converter<object, string>(HTupleElements.ObjectToString));
						return;
					default:
						if (objectsType == 16)
						{
							this.HArr = Array.ConvertAll<object, HHandle>(value, new Converter<object, HHandle>(HTupleElements.ObjectToHandle));
							return;
						}
						break;
					}
				}
				else
				{
					if (objectsType == 129)
					{
						this.LArr = Array.ConvertAll<object, long>(value, new Converter<object, long>(HTupleElements.ObjectToLong));
						return;
					}
					if (objectsType == 32898)
					{
						this.FArr = Array.ConvertAll<object, float>(value, new Converter<object, float>(HTupleElements.ObjectToFloat));
						return;
					}
					if (objectsType == 32900)
					{
						this.IPArr = Array.ConvertAll<object, IntPtr>(value, new Converter<object, IntPtr>(HTupleElements.ObjectToIntPtr));
						return;
					}
				}
				throw new HTupleAccessException("Attempting to assign object containing invalid type");
			}
		}

		// Token: 0x06001E59 RID: 7769 RVA: 0x000B6219 File Offset: 0x000B4419
		public static int ObjectToInt(object o)
		{
			return (int)o;
		}

		// Token: 0x06001E5A RID: 7770 RVA: 0x000B6221 File Offset: 0x000B4421
		public static long ObjectToLong(object o)
		{
			return (long)o;
		}

		// Token: 0x06001E5B RID: 7771 RVA: 0x000B6229 File Offset: 0x000B4429
		public static double ObjectToDouble(object o)
		{
			return (double)o;
		}

		// Token: 0x06001E5C RID: 7772 RVA: 0x000B6231 File Offset: 0x000B4431
		public static float ObjectToFloat(object o)
		{
			return (float)o;
		}

		// Token: 0x06001E5D RID: 7773 RVA: 0x000B6239 File Offset: 0x000B4439
		public static string ObjectToString(object o)
		{
			return (string)o;
		}

		// Token: 0x06001E5E RID: 7774 RVA: 0x000B6241 File Offset: 0x000B4441
		public static HHandle ObjectToHandle(object o)
		{
			return (HHandle)o;
		}

		// Token: 0x06001E5F RID: 7775 RVA: 0x000B6249 File Offset: 0x000B4449
		public static IntPtr ObjectToIntPtr(object o)
		{
			return (IntPtr)o;
		}

		/// <summary>
		///   Get the value of this element as a float.
		///   The element must represent numeric data.
		/// </summary>
		// Token: 0x1700007C RID: 124
		// (get) Token: 0x06001E60 RID: 7776 RVA: 0x000B6251 File Offset: 0x000B4451
		// (set) Token: 0x06001E61 RID: 7777 RVA: 0x000B625A File Offset: 0x000B445A
		public float F
		{
			get
			{
				return (float)this.D;
			}
			set
			{
				this.D = (double)value;
			}
		}

		/// <summary>
		///   Get the value of these elements as a float.
		///   The elements must represent numeric data.
		/// </summary>
		// Token: 0x1700007D RID: 125
		// (get) Token: 0x06001E62 RID: 7778 RVA: 0x000B6264 File Offset: 0x000B4464
		// (set) Token: 0x06001E63 RID: 7779 RVA: 0x000B6298 File Offset: 0x000B4498
		public float[] FArr
		{
			get
			{
				double[] darr = this.DArr;
				float[] array = new float[darr.Length];
				for (int i = 0; i < darr.Length; i++)
				{
					array[i] = (float)darr[i];
				}
				return array;
			}
			set
			{
				double[] array = new double[value.Length];
				for (int i = 0; i < value.Length; i++)
				{
					array[i] = (double)value[i];
				}
				this.DArr = array;
			}
		}

		/// <summary>
		///   Get the value of this element as an IntPtr.
		///   The element must represent an integer matching IntPtr.Size.
		/// </summary>
		// Token: 0x1700007E RID: 126
		// (get) Token: 0x06001E64 RID: 7780 RVA: 0x000B62CC File Offset: 0x000B44CC
		// (set) Token: 0x06001E65 RID: 7781 RVA: 0x000B632C File Offset: 0x000B452C
		public IntPtr IP
		{
			get
			{
				if (HalconAPI.isPlatform64)
				{
					if (this.Type == HTupleType.LONG || this.Type == HTupleType.HANDLE)
					{
						return new IntPtr(this.L);
					}
				}
				else if (this.Type == HTupleType.INTEGER || this.Type == HTupleType.HANDLE)
				{
					return new IntPtr(this.I);
				}
				throw new HTupleAccessException("Value does not represent a pointer on this platform");
			}
			set
			{
				if (this.Type == HTupleType.HANDLE)
				{
					value = this.H.Handle;
				}
				if (HalconAPI.isPlatform64)
				{
					this.L = value.ToInt64();
					return;
				}
				this.I = value.ToInt32();
			}
		}

		/// <summary>
		///   Get the value of these elements as IntPtrs.
		///   The elements must represent integers matching IntPtr.Size.
		/// </summary>
		// Token: 0x1700007F RID: 127
		// (get) Token: 0x06001E66 RID: 7782 RVA: 0x000B6368 File Offset: 0x000B4568
		// (set) Token: 0x06001E67 RID: 7783 RVA: 0x000B6404 File Offset: 0x000B4604
		public IntPtr[] IPArr
		{
			get
			{
				if (HalconAPI.isPlatform64 && this.Type == HTupleType.LONG)
				{
					IntPtr[] array = new IntPtr[this.LArr.Length];
					for (int i = 0; i < this.LArr.Length; i++)
					{
						array[i] = new IntPtr(this.LArr[i]);
					}
					return array;
				}
				if (this.Type == HTupleType.INTEGER)
				{
					IntPtr[] array2 = new IntPtr[this.IArr.Length];
					for (int j = 0; j < this.IArr.Length; j++)
					{
						array2[j] = new IntPtr(this.IArr[j]);
					}
					return array2;
				}
				throw new HTupleAccessException("Value does not represent a pointer on this platform");
			}
			set
			{
				if (HalconAPI.isPlatform64)
				{
					long[] array = new long[value.Length];
					for (int i = 0; i < value.Length; i++)
					{
						array[i] = value[i].ToInt64();
					}
					this.LArr = array;
					return;
				}
				int[] array2 = new int[value.Length];
				for (int j = 0; j < value.Length; j++)
				{
					array2[j] = value[j].ToInt32();
				}
				this.IArr = array2;
			}
		}

		/// <summary>Get the data type of this element</summary>
		// Token: 0x17000080 RID: 128
		// (get) Token: 0x06001E68 RID: 7784 RVA: 0x000B6473 File Offset: 0x000B4673
		public HTupleType Type
		{
			get
			{
				return this.elements.Type;
			}
		}

		/// <summary>Get the length of this element</summary>
		// Token: 0x17000081 RID: 129
		// (get) Token: 0x06001E69 RID: 7785 RVA: 0x000B6480 File Offset: 0x000B4680
		internal int Length
		{
			get
			{
				return this.elements.Length;
			}
		}

		// Token: 0x06001E6A RID: 7786 RVA: 0x000B648D File Offset: 0x000B468D
		internal void ConvertToMixed()
		{
			if (this.elements is HTupleElementsMixed)
			{
				throw new HTupleAccessException();
			}
			this.elements = this.parent.ConvertToMixed(this.elements.getIndices());
		}

		// Token: 0x06001E6B RID: 7787 RVA: 0x000B64C0 File Offset: 0x000B46C0
		public static HTuple operator +(HTupleElements e1, int t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple + htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E6C RID: 7788 RVA: 0x000B6518 File Offset: 0x000B4718
		public static HTuple operator +(HTupleElements e1, long t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple + htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E6D RID: 7789 RVA: 0x000B6570 File Offset: 0x000B4770
		public static HTuple operator +(HTupleElements e1, float t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = (double)t2)
				{
					result = htuple + htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E6E RID: 7790 RVA: 0x000B65C8 File Offset: 0x000B47C8
		public static HTuple operator +(HTupleElements e1, double t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple + htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E6F RID: 7791 RVA: 0x000B6620 File Offset: 0x000B4820
		public static HTuple operator +(HTupleElements e1, string t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple + htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E70 RID: 7792 RVA: 0x000B6678 File Offset: 0x000B4878
		public static HTuple operator +(HTupleElements e1, HTupleElements t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple + htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E71 RID: 7793 RVA: 0x000B66D0 File Offset: 0x000B48D0
		public static HTuple operator +(HTupleElements e1, HTuple t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				result = htuple + t2;
			}
			return result;
		}

		// Token: 0x06001E72 RID: 7794 RVA: 0x000B670C File Offset: 0x000B490C
		public static HTuple operator -(HTupleElements e1, int t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple - htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E73 RID: 7795 RVA: 0x000B6764 File Offset: 0x000B4964
		public static HTuple operator -(HTupleElements e1, long t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple - htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E74 RID: 7796 RVA: 0x000B67BC File Offset: 0x000B49BC
		public static HTuple operator -(HTupleElements e1, float t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = (double)t2)
				{
					result = htuple - htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E75 RID: 7797 RVA: 0x000B6814 File Offset: 0x000B4A14
		public static HTuple operator -(HTupleElements e1, double t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple - htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E76 RID: 7798 RVA: 0x000B686C File Offset: 0x000B4A6C
		public static HTuple operator -(HTupleElements e1, string t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple - htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E77 RID: 7799 RVA: 0x000B68C4 File Offset: 0x000B4AC4
		public static HTuple operator -(HTupleElements e1, HTupleElements t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple - htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E78 RID: 7800 RVA: 0x000B691C File Offset: 0x000B4B1C
		public static HTuple operator -(HTupleElements e1, HTuple t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				result = htuple - t2;
			}
			return result;
		}

		// Token: 0x06001E79 RID: 7801 RVA: 0x000B6958 File Offset: 0x000B4B58
		public static HTuple operator *(HTupleElements e1, int t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple * htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E7A RID: 7802 RVA: 0x000B69B0 File Offset: 0x000B4BB0
		public static HTuple operator *(HTupleElements e1, long t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple * htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E7B RID: 7803 RVA: 0x000B6A08 File Offset: 0x000B4C08
		public static HTuple operator *(HTupleElements e1, float t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = (double)t2)
				{
					result = htuple * htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E7C RID: 7804 RVA: 0x000B6A60 File Offset: 0x000B4C60
		public static HTuple operator *(HTupleElements e1, double t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple * htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E7D RID: 7805 RVA: 0x000B6AB8 File Offset: 0x000B4CB8
		public static HTuple operator *(HTupleElements e1, string t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple * htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E7E RID: 7806 RVA: 0x000B6B10 File Offset: 0x000B4D10
		public static HTuple operator *(HTupleElements e1, HTupleElements t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple * htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E7F RID: 7807 RVA: 0x000B6B68 File Offset: 0x000B4D68
		public static HTuple operator *(HTupleElements e1, HTuple t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				result = htuple * t2;
			}
			return result;
		}

		// Token: 0x06001E80 RID: 7808 RVA: 0x000B6BA4 File Offset: 0x000B4DA4
		public static HTuple operator /(HTupleElements e1, int t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple / htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E81 RID: 7809 RVA: 0x000B6BFC File Offset: 0x000B4DFC
		public static HTuple operator /(HTupleElements e1, long t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple / htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E82 RID: 7810 RVA: 0x000B6C54 File Offset: 0x000B4E54
		public static HTuple operator /(HTupleElements e1, float t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = (double)t2)
				{
					result = htuple / htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E83 RID: 7811 RVA: 0x000B6CAC File Offset: 0x000B4EAC
		public static HTuple operator /(HTupleElements e1, double t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple / htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E84 RID: 7812 RVA: 0x000B6D04 File Offset: 0x000B4F04
		public static HTuple operator /(HTupleElements e1, string t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple / htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E85 RID: 7813 RVA: 0x000B6D5C File Offset: 0x000B4F5C
		public static HTuple operator /(HTupleElements e1, HTupleElements t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple / htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E86 RID: 7814 RVA: 0x000B6DB4 File Offset: 0x000B4FB4
		public static HTuple operator /(HTupleElements e1, HTuple t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				result = htuple / t2;
			}
			return result;
		}

		// Token: 0x06001E87 RID: 7815 RVA: 0x000B6DF0 File Offset: 0x000B4FF0
		public static HTuple operator %(HTupleElements e1, int t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple % htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E88 RID: 7816 RVA: 0x000B6E48 File Offset: 0x000B5048
		public static HTuple operator %(HTupleElements e1, long t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple % htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E89 RID: 7817 RVA: 0x000B6EA0 File Offset: 0x000B50A0
		public static HTuple operator %(HTupleElements e1, float t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = (double)t2)
				{
					result = htuple % htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E8A RID: 7818 RVA: 0x000B6EF8 File Offset: 0x000B50F8
		public static HTuple operator %(HTupleElements e1, double t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple % htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E8B RID: 7819 RVA: 0x000B6F50 File Offset: 0x000B5150
		public static HTuple operator %(HTupleElements e1, string t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple % htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E8C RID: 7820 RVA: 0x000B6FA8 File Offset: 0x000B51A8
		public static HTuple operator %(HTupleElements e1, HTupleElements t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = htuple % htuple2;
				}
			}
			return result;
		}

		// Token: 0x06001E8D RID: 7821 RVA: 0x000B7000 File Offset: 0x000B5200
		public static HTuple operator %(HTupleElements e1, HTuple t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				result = htuple % t2;
			}
			return result;
		}

		// Token: 0x06001E8E RID: 7822 RVA: 0x000B703C File Offset: 0x000B523C
		public static HTuple operator &(HTupleElements e1, int t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple & htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001E8F RID: 7823 RVA: 0x000B7094 File Offset: 0x000B5294
		public static HTuple operator &(HTupleElements e1, long t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple & htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001E90 RID: 7824 RVA: 0x000B70EC File Offset: 0x000B52EC
		public static HTuple operator &(HTupleElements e1, float t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = (double)t2)
				{
					result = (htuple & htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001E91 RID: 7825 RVA: 0x000B7144 File Offset: 0x000B5344
		public static HTuple operator &(HTupleElements e1, double t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple & htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001E92 RID: 7826 RVA: 0x000B719C File Offset: 0x000B539C
		public static HTuple operator &(HTupleElements e1, string t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple & htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001E93 RID: 7827 RVA: 0x000B71F4 File Offset: 0x000B53F4
		public static HTuple operator &(HTupleElements e1, HTupleElements t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple & htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001E94 RID: 7828 RVA: 0x000B724C File Offset: 0x000B544C
		public static HTuple operator &(HTupleElements e1, HTuple t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				result = (htuple & t2);
			}
			return result;
		}

		// Token: 0x06001E95 RID: 7829 RVA: 0x000B7288 File Offset: 0x000B5488
		public static HTuple operator |(HTupleElements e1, int t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple | htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001E96 RID: 7830 RVA: 0x000B72E0 File Offset: 0x000B54E0
		public static HTuple operator |(HTupleElements e1, long t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple | htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001E97 RID: 7831 RVA: 0x000B7338 File Offset: 0x000B5538
		public static HTuple operator |(HTupleElements e1, float t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = (double)t2)
				{
					result = (htuple | htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001E98 RID: 7832 RVA: 0x000B7390 File Offset: 0x000B5590
		public static HTuple operator |(HTupleElements e1, double t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple | htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001E99 RID: 7833 RVA: 0x000B73E8 File Offset: 0x000B55E8
		public static HTuple operator |(HTupleElements e1, string t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple | htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001E9A RID: 7834 RVA: 0x000B7440 File Offset: 0x000B5640
		public static HTuple operator |(HTupleElements e1, HTupleElements t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple | htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001E9B RID: 7835 RVA: 0x000B7498 File Offset: 0x000B5698
		public static HTuple operator |(HTupleElements e1, HTuple t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				result = (htuple | t2);
			}
			return result;
		}

		// Token: 0x06001E9C RID: 7836 RVA: 0x000B74D4 File Offset: 0x000B56D4
		public static HTuple operator ^(HTupleElements e1, int t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple ^ htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001E9D RID: 7837 RVA: 0x000B752C File Offset: 0x000B572C
		public static HTuple operator ^(HTupleElements e1, long t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple ^ htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001E9E RID: 7838 RVA: 0x000B7584 File Offset: 0x000B5784
		public static HTuple operator ^(HTupleElements e1, float t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = (double)t2)
				{
					result = (htuple ^ htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001E9F RID: 7839 RVA: 0x000B75DC File Offset: 0x000B57DC
		public static HTuple operator ^(HTupleElements e1, double t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple ^ htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EA0 RID: 7840 RVA: 0x000B7634 File Offset: 0x000B5834
		public static HTuple operator ^(HTupleElements e1, string t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple ^ htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EA1 RID: 7841 RVA: 0x000B768C File Offset: 0x000B588C
		public static HTuple operator ^(HTupleElements e1, HTupleElements t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple ^ htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EA2 RID: 7842 RVA: 0x000B76E4 File Offset: 0x000B58E4
		public static HTuple operator ^(HTupleElements e1, HTuple t2)
		{
			HTuple result;
			using (HTuple htuple = e1)
			{
				result = (htuple ^ t2);
			}
			return result;
		}

		// Token: 0x06001EA3 RID: 7843 RVA: 0x000B7720 File Offset: 0x000B5920
		public static bool operator <(HTupleElements e1, int t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple < htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EA4 RID: 7844 RVA: 0x000B7778 File Offset: 0x000B5978
		public static bool operator <(HTupleElements e1, long t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple < htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EA5 RID: 7845 RVA: 0x000B77D0 File Offset: 0x000B59D0
		public static bool operator <(HTupleElements e1, float t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = (double)t2)
				{
					result = (htuple < htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EA6 RID: 7846 RVA: 0x000B7828 File Offset: 0x000B5A28
		public static bool operator <(HTupleElements e1, double t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple < htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EA7 RID: 7847 RVA: 0x000B7880 File Offset: 0x000B5A80
		public static bool operator <(HTupleElements e1, string t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple < htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EA8 RID: 7848 RVA: 0x000B78D8 File Offset: 0x000B5AD8
		public static bool operator <(HTupleElements e1, HTupleElements t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple < htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EA9 RID: 7849 RVA: 0x000B7930 File Offset: 0x000B5B30
		public static bool operator <(HTupleElements e1, HTuple t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				result = (htuple < t2);
			}
			return result;
		}

		// Token: 0x06001EAA RID: 7850 RVA: 0x000B796C File Offset: 0x000B5B6C
		public static bool operator >(HTupleElements e1, int t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple > htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EAB RID: 7851 RVA: 0x000B79C4 File Offset: 0x000B5BC4
		public static bool operator >(HTupleElements e1, long t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple > htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EAC RID: 7852 RVA: 0x000B7A1C File Offset: 0x000B5C1C
		public static bool operator >(HTupleElements e1, float t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = (double)t2)
				{
					result = (htuple > htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EAD RID: 7853 RVA: 0x000B7A74 File Offset: 0x000B5C74
		public static bool operator >(HTupleElements e1, double t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple > htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EAE RID: 7854 RVA: 0x000B7ACC File Offset: 0x000B5CCC
		public static bool operator >(HTupleElements e1, string t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple > htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EAF RID: 7855 RVA: 0x000B7B24 File Offset: 0x000B5D24
		public static bool operator >(HTupleElements e1, HTupleElements t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple > htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EB0 RID: 7856 RVA: 0x000B7B7C File Offset: 0x000B5D7C
		public static bool operator >(HTupleElements e1, HTuple t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				result = (htuple > t2);
			}
			return result;
		}

		// Token: 0x06001EB1 RID: 7857 RVA: 0x000B7BB8 File Offset: 0x000B5DB8
		public static bool operator <=(HTupleElements e1, int t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple <= htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EB2 RID: 7858 RVA: 0x000B7C10 File Offset: 0x000B5E10
		public static bool operator <=(HTupleElements e1, long t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple <= htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EB3 RID: 7859 RVA: 0x000B7C68 File Offset: 0x000B5E68
		public static bool operator <=(HTupleElements e1, float t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = (double)t2)
				{
					result = (htuple <= htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EB4 RID: 7860 RVA: 0x000B7CC0 File Offset: 0x000B5EC0
		public static bool operator <=(HTupleElements e1, double t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple <= htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EB5 RID: 7861 RVA: 0x000B7D18 File Offset: 0x000B5F18
		public static bool operator <=(HTupleElements e1, string t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple <= htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EB6 RID: 7862 RVA: 0x000B7D70 File Offset: 0x000B5F70
		public static bool operator <=(HTupleElements e1, HTupleElements t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple <= htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EB7 RID: 7863 RVA: 0x000B7DC8 File Offset: 0x000B5FC8
		public static bool operator <=(HTupleElements e1, HTuple t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				result = (htuple <= t2);
			}
			return result;
		}

		// Token: 0x06001EB8 RID: 7864 RVA: 0x000B7E04 File Offset: 0x000B6004
		public static bool operator >=(HTupleElements e1, int t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple >= htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EB9 RID: 7865 RVA: 0x000B7E5C File Offset: 0x000B605C
		public static bool operator >=(HTupleElements e1, long t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple >= htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EBA RID: 7866 RVA: 0x000B7EB4 File Offset: 0x000B60B4
		public static bool operator >=(HTupleElements e1, float t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = (double)t2)
				{
					result = (htuple >= htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EBB RID: 7867 RVA: 0x000B7F0C File Offset: 0x000B610C
		public static bool operator >=(HTupleElements e1, double t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple >= htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EBC RID: 7868 RVA: 0x000B7F64 File Offset: 0x000B6164
		public static bool operator >=(HTupleElements e1, string t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple >= htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EBD RID: 7869 RVA: 0x000B7FBC File Offset: 0x000B61BC
		public static bool operator >=(HTupleElements e1, HTupleElements t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				using (HTuple htuple2 = t2)
				{
					result = (htuple >= htuple2);
				}
			}
			return result;
		}

		// Token: 0x06001EBE RID: 7870 RVA: 0x000B8014 File Offset: 0x000B6214
		public static bool operator >=(HTupleElements e1, HTuple t2)
		{
			bool result;
			using (HTuple htuple = e1)
			{
				result = (htuple >= t2);
			}
			return result;
		}

		// Token: 0x06001EBF RID: 7871 RVA: 0x000B8050 File Offset: 0x000B6250
		public static implicit operator bool(HTupleElements hte)
		{
			return hte.I != 0;
		}

		// Token: 0x06001EC0 RID: 7872 RVA: 0x000B805B File Offset: 0x000B625B
		public static implicit operator int(HTupleElements hte)
		{
			return hte.I;
		}

		// Token: 0x06001EC1 RID: 7873 RVA: 0x000B8063 File Offset: 0x000B6263
		public static implicit operator long(HTupleElements hte)
		{
			return hte.L;
		}

		// Token: 0x06001EC2 RID: 7874 RVA: 0x000B806B File Offset: 0x000B626B
		public static implicit operator IntPtr(HTupleElements hte)
		{
			return hte.IP;
		}

		// Token: 0x06001EC3 RID: 7875 RVA: 0x000B8073 File Offset: 0x000B6273
		public static implicit operator double(HTupleElements hte)
		{
			return hte.D;
		}

		// Token: 0x06001EC4 RID: 7876 RVA: 0x000B807B File Offset: 0x000B627B
		public static implicit operator string(HTupleElements hte)
		{
			return hte.S;
		}

		// Token: 0x06001EC5 RID: 7877 RVA: 0x000B8083 File Offset: 0x000B6283
		public static implicit operator HTupleElements(int i)
		{
			return new HTuple(i)[0];
		}

		// Token: 0x06001EC6 RID: 7878 RVA: 0x000B8091 File Offset: 0x000B6291
		public static implicit operator HTupleElements(long l)
		{
			return new HTuple(l)[0];
		}

		// Token: 0x06001EC7 RID: 7879 RVA: 0x000B809F File Offset: 0x000B629F
		public static implicit operator HTupleElements(IntPtr ip)
		{
			return new HTuple(ip)[0];
		}

		// Token: 0x06001EC8 RID: 7880 RVA: 0x000B80AD File Offset: 0x000B62AD
		public static implicit operator HTupleElements(double d)
		{
			return new HTuple(d)[0];
		}

		// Token: 0x06001EC9 RID: 7881 RVA: 0x000B80BB File Offset: 0x000B62BB
		public static implicit operator HTupleElements(string s)
		{
			return new HTuple(s)[0];
		}

		// Token: 0x06001ECA RID: 7882 RVA: 0x000B80C9 File Offset: 0x000B62C9
		public static implicit operator HTupleElements(HHandle h)
		{
			return new HTuple(new HTupleHandle(new HHandle[]
			{
				h
			}, false));
		}

		// Token: 0x0400116A RID: 4458
		private HTuple parent;

		// Token: 0x0400116B RID: 4459
		private HTupleElementsImplementation elements;
	}
}
